package xin.zhiyin.服务.实现;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Sort;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import xin.zhiyin.实体.系统管理员Entity;
import xin.zhiyin.仓库.系统管理员Repository;
import xin.zhiyin.服务.系统管理员Service;

import java.util.Optional;

@Service  /*使用 @Service 注解可以将一个类声明为业务逻辑组件，并将其对象存入 Spring 容器中。在控制器类中，通过注入该组件的实例，即可调用其中的方法。*/
@Transactional(rollbackFor = Exception.class)
public class 系统管理员Service实现 implements 系统管理员Service {
    @Autowired
    private 系统管理员Repository 管理员Dao;
    @Override
    public 系统管理员Entity 根据登录名称和登录密码查询系统管理员(String 登录名称, String 登录密码) {
        系统管理员Entity 管理员 = 管理员Dao.findByLoginNameAndLoginPassword(登录名称,登录密码);
        if(管理员 != null)
        {
            return 管理员;
        }else{
            return null;
        }
    }
    @Override
    public void 新增系统管理员(系统管理员Entity 管理员) {
        管理员Dao.save(管理员);
    }

    @Override
    public void 系统管理员更新登录名称(Long id,String 登录名称) {
        系统管理员Entity m = new 系统管理员Entity();
        Optional<系统管理员Entity> 员 = 管理员Dao.findById(id);
        if(员.isPresent())
        {
            m = 员.get();
        }
        m.setLoginName(登录名称);
        管理员Dao.save(m);
    }

    @Override
    public Iterable<系统管理员Entity> 获取所有系统管理员() {
        return 管理员Dao.findAll();
    }

    @Override
    public Optional<系统管理员Entity> 根据id查询系统管理员(Long id) {
        return 管理员Dao.findById(id);
    }

    @Override
    public void 根据id删除系统管理员(Long id) {
        管理员Dao.deleteById(id);
    }
/*
* 字段:系统管理员Entity的其中一个属性
* */
    @Override
    public Page<系统管理员Entity> String字段排序和分页查询(String 对象的字段) {
        return 管理员Dao.findAll(
                PageRequest.of(1, 20, Sort.by(new Sort.Order(Sort.Direction.ASC, 对象的字段))));
    }


}
